#include "RegistroVariable.h"
#include <string>
#include <list>
#include <set>

#ifndef REGISTROVARIABLENEWSDATACATEGORIA_H
#define REGISTROVARIABLENEWSDATACATEGORIA_H

using namespace std;

typedef list<TCId> ListaCategorias;
typedef set<int> ConjuntoCategorias;

class RegistroVariableNewsDataCategoria : public RegistroVariable
{
        private:
                TCBooleano estado;
                unsigned int cantidadPositivos;
                ListaCategorias listaPositivos;
                ListaCategorias listaNegativos;

        public:
                RegistroVariableNewsDataCategoria();
                virtual ~RegistroVariableNewsDataCategoria();

                void getListaPositivos(ListaCategorias &listaPositivos);
                void getListaNegativos(ListaCategorias &ListaNegativos);
                ListaCategorias* getListaPositivosReferencia();
                ListaCategorias* getListaNegativosReferencia();
                TCBooleano getEstado();

                void setListaPositivos(ListaCategorias &value);
                void setListaNegativos(ListaCategorias &value);
                void setEstado(TCBooleano value);

                bool AgregarAListaPositivos(TCId idCategoria);
                bool AgregarAListaNegativos(TCId idCategoria);

                void InitializeRegistro();

                void purgarCategorias(ConjuntoCategorias& categoriasVivas);

                void fillBuffer();
                void readFromBuffer();
};

#endif
